<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        
    </style>
</head>
<body>
    
</body>
<script>
    
    // 闭包实现单例模式
    // ;const Fn = (function(){
    //     const obj = {};
    //     return function(){
    //         obj.name = "admin";
    //         return obj;
    //     }
    // })();
    
        
    // 改写new的执行过程实现单例模式
    function Fn(){
        if(!Fn.__qfobj__){
            Fn.__qfobj__ = {};
        }
        Fn.__qfobj__.name = "admin";
        return Fn.__qfobj__;
    }

    const f1 = new Fn();
    const f2 = new Fn();

    console.log(f1);
    console.log(f2);
    console.log(f1.name);        // admin
    console.log(f1 === f2);      // true

    // 知识储备
    // 1. new原理
    // 2. 对象的操作
    // 3. 数据类型转换

</script>
</html>